Method and apparatus for real time scheduling of traffic in wireless networks

ABSTRACT

Apparatuses, realtime-stations, computer programs, and methods for scheduling of traffic in wireless networks are provided. In one embodiment, a method is provided for scheduling of traffic in a wireless networks including real-time stations intending to send real-time traffic and best-effort stations sending best effort traffic. The method can include overhearing for a predetermined period of time the traffic by a station which intends to send real-time traffic, and if from the overhearing the station concludes that there is already a primary station transmitting real-time access markers, assuming by the station a sequence number based on the number of real-time stations which already are sending real-time traffic.

FIELD OF INVENTION

The present invention relates to a method and an apparatus for real-timetraffic scheduling in wireless networks.

BACKGROUND OF THE INVENTION

Wireless networks have become widely distributed nowadays. A widely usedtype of networks referred to as “wireless LANs” is defined in the IEEE802.11 standards of which there exists a whole family. One issue in suchtype of wireless networks is the problem of quality of service.Traditionally the nodes of such kind of networks transmit in theso-called “best effort” mode which means that a sender can transmit at arate which is currently available at the network. The “best effort” modedoes not ensure a certain quality of service (also referred to as QoS)like a minimum assured bandwidth which could enable “real-time”transmission.

However, there have been efforts to implement QoS or real-timetransmission in wireless networks. The most relevant known solutions areIEEE 802.11e (see IEEE standard for information technology—specificrequirements part 11: Wireless LAN medium access control (MAC) andphysical layer (PHY) specifications: Amendment 8: Medium access control(MAC) quality of service enhancements. IEEE Standard 802.11E-2005, 2005)and the Contention-Free Access using the point coordination function(PCF) defined in the IEEE 802.11 standard (see IEEE standard forinformation technology—LAN/MAN—specific requirements—part 11: WirelessLAN medium access control (MAC) and physical layer (PHY) specifications.IEEE Standard 802.11, 1999/8802-11 (ISO/IEC8802-11:1999), 1999).

In the former, even though different priorities can be assigned todifferent traffic flows, it still lacks *strict* quality guaranteessince the mechanism is contention-based. While real-time packets getassigned higher priority and based thereon have a higher likelihood ofgetting assigned a short backoff time, still there is the problem thatthe mechanism is contention based, and if the total number ofpackets/stations is too high, there is only a statistical chance thatthe real-time packet is transmitted with the desired quality and thereis no strict quality assurance.

On the other hand, the PCF mode in 802.11 can offer strict guarantees.However, mainly due to their complexity, very few implementations can befound in the market. Apart from the drawback of implementationcomplexity, strict guarantees rely on “medium reservations” that areusually done on a periodic basis, e.g. a given station reserves thechannel for transmitting (P bytes) every T seconds. However, thisperiodicity does not match the real-time traffic pattern from the datasources. Consider for example voice traffic, where the communicationchannel is typically idle for ⅓ of the time. Several voice codecs tendto optimize the bandwidth use by applying silence suppressionfunctionality, leaving several (periodic) reserved RT slots empty.

One may try to adapt the period of time slot reservation to the voicecodec pattern to optimize bandwidth efficiency, or to reduce delays, butnever both at one time.

To support Real-time traffic in wireless networks the “traditional”approach is to make periodic time slot reservations at the MAC layer.This is schematically illustrated in FIG. 1A. FIG. 1A shows below thereserved timings for real-time packet transmission indicated as dashs onthe time axis, and in the upper part there is shown the packet arrivalfrequency through dashed boxes, whereas the solid line boxes representarriving real-time packets. One can see that in case of FIG. 1 there isno significant delay in the transmission of real-time packets, however,the period between two consecutive real-time (RT) time slots isrelatively small which increases the likelihood of unused RT time slots,thereby decreasing efficiency.

To increase efficiency one may increase this time period as shown inFIG. 1B. One can see that depending on the arrival time there can be asignificant delay in the forwarding of real-time packets, such as incase of the of the fourth real-time packet shown in FIG. 1B whicharrives only shortly after the third reserved RT slot and whichtherefore has to wait for some time until it is sent at the fourthreserved RT slot.

One possibility to decrease the delay would be to decrease the periodbetween two RT slots reserved for real-time transmission as in theexample of FIG. 1A, but as previously mentioned this decreases thereservation efficiency because for a given number of real-time packetsthere will be a higher number of unused RT slots.

Therefore there is a trade-off between short delays and high efficiencywith the approach of RT slots granted to particular users andperiodically distributed along the time like in time division multipleaccess (TDMA) systems.

Hence there is a need for an improved mechanism ensuring real-timetraffic in wireless networks. Preferably the mechanism should enablestrict guarantees to real-time traffic flows while being backwardcompatible (deployable in existing 802.11 hotspots), and preferablywithout starving 802.11 flows.

SUMMARY OF THE INVENTION

According to one embodiment there is provided method for scheduling oftraffic in wireless networks, whereas said network comprises real-timestations intending to send real-time traffic and best-effort stationssending best effort traffic, said method comprising: transmitting by aprimary real-time station periodically a real-time access marker tothereby define rounds;

-   assigning a sequence number to each station in said network which    intends to send real-time traffic;-   based on the sequence number assigned to a station, defining a fixed    backoff time at which a packet from this station is transmitted    after the start of a round to thereby establish a sequence in which    the real-time packets are sent by the different realtime stations,    said method being characterized by further comprising:-   overhearing for a predetermined period of time the traffic by a    station which intends to send real-time traffic;-   if from said overhearing said station concludes that there is    already a primary station transmitting real-time access markers,    assuming by said station a sequence number based on the number of    real-time stations which already are sending real-time traffic

The definition of rounds and the assignment of fixed backoffs allows ascheduling ensuring real-time transmission. Moreover, by overhearing thetraffic by a station which intends to send realtime traffic and assuminga sequence number based on the number of stations which send alreadyrealtime traffic, the scheduling of the realtime traffic can beperformed in a self-organized manner. Without centrally administratingthe transmission sequence a schedule is established by the stations ofthe network itself, without interference or instructions from anadministrator. The real-time access markers define rounds, and withinthe rounds the realtime transmission of the different realtime stationsis scheduled in accordance with their sequence numbers. Such a“self-organizing” scheme for realtime transmission scheduling isapplicable in ad-hoc networks where the realtime station acts as aforwarding node and forwards the packets which it has received to thenext station, however, it is applicable as well to infrastructurenetworks (such as 802.11 networks), where the scheme then schedules thetransmission from a realtime station to an access point.

Regarding the “overhearing” of the traffic, according to one embodimentthe realtime station which intends to send packets could overhear theother transmissions from other realtime stations to guess or determinehow many of them are present. This may take some time which is longerthan one round, because not every realtime station may transmit in everyround. There may be set a fixed time (which may be longer than a round,e.g. several rounds, for example two, three, four or five rounds) forwhich the overhearing process is performed and then the realtime stationguesses the total number of realtime stations and assumes its sequencenumber accordingly.

Alternatively, according to one embodiment the realtime access markermay include an indication of the number of realtime stations. Then the(new) realtime station which intends to send traffic may assume itssequence number once it has overheard the realtime access marker.

According to one embodiment the method comprises:

-   if from said overhearing said station concludes that there is not    yet a primary station sending real-time access markers, assuming by    said station the role of said primary station and starting to send    real-time access markers.

In this manner a “primary station” can be determined in case of anetwork where there is no realtime traffic yet.

According to one embodiment the method comprises:

-   assigning a maximum number of RT slots per round to each station;-   based on the sequence number assigned to a station and the number of    RT slots it is allowed to transmit, defining a sequence of fixed    backoff times at which packets from this station are transmitted    after the start of a round to thereby establish a sequence in which    the real-time packets are sent by the different realtime stations.

In this manner the system takes into account different throughputrequirements for different RT stations.

According to one embodiment said real-time access marker comprises anindication of the number of stations which currently are sendingreal-time traffic in said network and the number of reserved RT slotsfor each of them, and

incrementally assigning a new sequence number to a real-time stationwhich newly wants to send real-time traffic based on the number ofreal-time stations which are already sending real-time traffic.

In this manner the sequence can be established in a distributed manner.

According to one embodiment the method comprises:

-   overhearing for a predetermined period of time the traffic by a    station which intends to send real-time traffic;-   if from said overhearing said station concludes that there is    already a primary station transmitting real-time access markers,    assuming by said station a sequence number based on the number of    real-time stations which already are sending real-time traffic;-   if from said overhearing said station concludes that there is not    yet a primary station sending real-time access markers, assuming by    said station the role of said primary station and starting to send    real-time access markers.

According to one embodiment the method comprises:

-   dividing said rounds (time frames) into a part being used for    real-time traffic in which real-time packets can be scheduled and a    part being reserved for best effort traffic.

According to one embodiment, if a best effort station does not finishits transmission before the end of the round having a duration of T,thereby taking over a fraction ΔT of the next round, the next real-timeaccess marker is sent with a delay of ΔT and the next round duration isshortened to T−ΔT.

According to one embodiment, if a packet from a real-time station doesnot use the RT slot assigned to it based on the sequence number of saidstation, the succeeding station takes over said RT slot.

According to one embodiment a real-time station uses only a definednumber of real-time slots per round and further packets are “downgraded”and transmitted in best effort mode.

According to one embodiment if a downgraded packet can not betransmitted within a given round (during the contention with other besteffort packets) it is upgraded again in the next round and transmittedin the reserved RT slot.

According to one embodiment the method comprises:

-   before a new real-time station starts to send real-time packets,    checking whether the sum of the so far reserved time for real-time    transmission and the so far reserved time for best effort traffic    plus the transmission time necessary for the traffic of the new    station does exceed the round duration, and-   if it does exceed said duration, sending said traffic from said new    station in best effort mode, and-   if it does not exceed said duration, allowing said new station to    join the other real-time stations as a further real-time station.

According to one embodiment the method comprises:

-   setting the duration field in the real-time access marker to a    duration corresponding to the remaining backoff of the last RT    station/packet in the round to avoid that a best effort station    takes over a RT slot which has been assigned to a real-time station.

According to one embodiment the method comprises:

-   setting the duration field in a real-time packet to a duration such    that it can be avoided that a best effort packet can capture a RT    slot which is reserved for this or its succeeding real-time packet.

According to one embodiment there is provided an apparatus forscheduling of traffic in wireless networks, whereas said networkcomprises real-time stations intending to send real-time traffic andbest-effort stations sending best effort traffic, said apparatuscomprising:

-   a module for transmitting by a primary real-time station    periodically a real-time access marker to thereby define rounds;-   a module for assigning a sequence number to each station in said    network which intends to send real-time traffic;-   a module for based on the sequence number assigned to a station,    defining a fixed backoff time at which a packet from this station is    transmitted after the start of a round to thereby establish a    sequence in which the real-time packets are sent by the different    realtime stations, said apparatus further comprising:-   a module for overhearing for a predetermined period of time the    traffic by a station which intends to send real-time traffic;-   a module for assuming by said station a sequence number based on the    number of real-time stations which already are sending real-time    traffic if from said overhearing said station concludes that there    is already a primary station transmitting real-time access markers.

In this way there can be implemented an apparatus which performs ascheduling according to an embodiment of the invention.

According to one embodiment there is provided a realtime-station forscheduling of traffic in wireless networks, whereas said networkcomprises real-time stations intending to send real-time traffic andbest-effort stations sending best effort traffic, said realtime-stationcomprising:

-   a module for receiving a real-time access marker sent periodically    by a primary real-time station to thereby define rounds;-   a module for assigning a sequence number to said realtime-station in    said network which intends to send real-time traffic;    a module for based on the sequence number assigned to said station,    defining a fixed backoff time at which a packet from this station is    transmitted after the start of a round to thereby establish a    sequence in which the real-time packets are sent by the different    realtime stations, said realtime-station further comprising:-   a module for overhearing for a predetermined period of time the    traffic by a station which intends to send real-time traffic;-   a module for assuming by said realtime-station a sequence number    based on the number of real-time stations which already are sending    real-time traffic if from said overhearing said station concludes    that there is already a primary station transmitting real-time    access markers.

In this manner there can be implemented a real-time station whichschedules its packets according to a scheme of an embodiment of theinvention.

According to one embodiment there is provided a computer programcomprising computer program code means adapted to perform the steps of amethod according to an embodiment of the invention when said program isrun on a computer.

DESCRIPTION OF THE DRAWINGS

FIG. 1 schematically illustrates the scheduling according to the priorart.

FIG. 2 schematically illustrates the scheduling according to anembodiment of the invention.

FIG. 3 schematically illustrates the scheduling according to anembodiment of the invention.

FIG. 4 schematically illustrates the scheduling according to anembodiment of the invention.

FIG. 5 schematically illustrate the scheduling according to anembodiment of the invention.

FIGS. 6A and 6B schematically illustrates the scheduling according to anembodiment of the invention.

FIG. 7 schematically illustrates the scheduling according to anembodiment of the invention.

FIG. 8 schematically illustrates a flowchart of the scheduling accordingto an embodiment of the invention.

DETAILED DESCRIPTION

Before in the following embodiments of the invention are described, someterms which will be used in the following description will be clarified.

ACK Acknowledgement BE Best-Effort (in our context it refers to 802.11traffic) MAC Medium Access Control NAV Network Allocation Vector QoSQuality of Service RAM Real-time Access Marker RT Real-Time SIFS ShortInter-frame Space AIFS Arbitrary Inter-frame Space

According to one embodiment there is a network with n stations amongwhich nrt have real-time (RT) traffic to transmit, using the protocol ormechanism in accordance with an embodiment of the invention, andnbe=n−nrt are legacy 802.11 stations with best-effort (BE) traffic. Alln stations are in the same collision domain, contending to access thechannel. Without loss of generality, one may consider that all transmitto a common destination, e.g., the access point (AP) of a hotspot.However, one can also use the protocol or mechanism without changes inan ad-hoc, single collision domain network. FIG. 2 illustrates somebasic aspects of an embodiment according to the invention.

As can be seen from FIG. 2, there is a periodic round (a time frame witha predefined time length) which is defined by some beacon signal orpacket which may be referred to as real-time access marker (hereinafterreferred to also as RAM). This RAM is periodically transmitted by some(primary) real-time station and thereby defines some “round” withinwhich packets may be sent. The “round” in some sense may be regarded asa “virtual frame” within which there exists a defined structure. Inother words one may say that a “round” is an interval within whichrealtime transmission follows a certain defined and repeating pattern orsequence.

According to one embodiment there is then established some transmissionschedule (which at least to some extent is “fixed”) according to whichthe packets from different real-time stations are sent or forwarded by acertain real-time station. This is indicated in FIG. 2 by the sequenceA-B-C-D, i.e. at first there are transmitted packets from station A,then from station B, then C, and then the packets from D. This sequenceis fixed with respect to the start of a “round”, as can be seen in FIG.2 from the sequence A-B indicated at the right-hand side in the secondround.

According to one embodiment, if a RT slot reserved for a real-timepacket is skipped by the station corresponding to this RT slot (e.g. dueto silence suppression as indicated for packet B in FIG. 2), thesucceeding station(s) (here station C) takes over this RT slot).

According to one embodiment schematically illustrated in FIG. 3 theperiod between two RAMs (the round) is divided into two parts, one forthe real-time transmission and the other one for the best efforttraffic.

According to one embodiment, to preserve fairness among RT stations andto protect BE traffic from starvation, a RT station uses only one highpriority RT slot in a given interval (“round”). Additional RT packetsfrom that station in the same round get BE (best effort) priority (tocontend fairly with BE traffic). Such packets may be denoted asbest-effort real-time (BE-RT), one such packet (packet A on top ofpacket C) is shown in FIG. 3.

The aspects of the embodiments mentioned before may be summarized asfollows:

-   -   To get guaranteed access priority, real-time stations establish        a transmission schedule/sequence among themselves in a        distributed manner.    -   To deal with round and schedule synchronization among nodes,        without requiring any changes at the AP, a “primary” station        transmits periodic reserved access markers (RAM)    -   To avoid colliding with BE (802.11) stations, real-time stations        transmit before any BE (802.11) station grabs the channel by        having higher access priority (based on sequence numbers which        are based on the number of RT stations which are currently        sending).    -   To reuse empty reserved RT slots (e.g., when using voice codecs        with silence suppression), when a real-time station skips a        reserved transmission RT slot (B in FIG. 1), its successor(s)        take over the RT slot, making more space for BE stations.    -   To protect BE traffic from starvation, a RT station uses only        one high priority RT slot in a given interval and additional RT        packets from that station in the same round get only BE priority

The aforementioned aspects and mechanisms can be implemented whilemaintaining complete backward compatibility, i.e. there are absolutelyno changing requirements on 802.11 stations that coexist with thereal-time stations according to embodiments of the invention. Thereal-time stations may send a “normal” packet which is transparent forBE stations and which in, for instance, the ToS field of 802.11e headeridentifies it as RT packet. The identification as a RT packet allows theprimary station to easily update the list of active RT stations.Moreover, the RAM packet also may be a “normal” 802.11 packet, so thatthere is no specific handling required which could destroycompatibility.

In the following some further embodiments will be described.

At first the self-organizing setup phase will be explained in somewhatmore detail.

Before a real-time station starts transmitting real-time packets, itoverhears the channel for a given duration of time. If it does notreceive a RAM during this time, it is the first station starting areal-time session. In the following this station will be referred to asthe primary station.

The primary station has to broadcast a RAM packet every T to indicatethe start of a new round for all RT stations in a synchronous way. TheRAM is sent at high priority, e.g., after SIFS (Short Inter Frame Space)and a backoff of one IEEE 802.11 time slot denoted as tslot (SIFS=10 μsand tslot=20 μs for 802.11b) or t_slot. This makes sure that the RAMwill always be given the highest priority so that no best effort packetcould take over the position of the RAM, thereby guaranteeing that theduration of a round (defined by the time between two RAMs) is constant.

The primary station continuously overhears the channel to notice whennew real-time stations join. Packets of real-time stations according toone embodiment are identified, for instance, by the IP ToS (type ofservice) field. Hence, the primary station can maintain a table of allactive real-time stations, including their MAC address, and sequencenumber i (this will be explained in somewhat more detail below), numberof packets they are allowed to transmit and the transmission timerequired for their real-time packets. Additionally, according to oneembodiment the time of the last real-time packet transmission of therespective station is stored. It should be noted that preferably otherstations should also maintain such a table for the case they become theprimary station (such a case will be explained in more detail below).The primary station broadcasts information about the total number ofreal-time stations nrt, the number of packets each RT station is allowedto transmit and the total time ttot required for transmitting allreal-time packets per round through the RAM. If all real-time stationstransmit their packets, as schematically illustrated in FIG. 4 the totalrequired transmission time is:ttot=(2nrt+1)SIFS+(nrt+1)tslot+nrt tack+tram+SUM(tdata,i)

The transmission duration of RAM (tram), data packets (tdata,i), and ACK(tack) depends on the current channel rate and thus may vary.

To maintain compatibility with conventional 802.11 devices, according toone embodiment the RAM is a normal 802.11 data frame with specificinformation in the payload. It is not acknowledged by other stations asit is transmitted in broadcast.

Conventional stations are not aware of the notion of the interval (the“round”) and may not finish their packet transmission before the end ofa round, thus taking over the next round with a duration ΔT. In thiscase, the primary station would send the RAM with a delay ΔT andschedule the next RAM after duration T−ΔT (shortening the BE trafficperiod) to compensate for this delay. Hence, in average the interval Tremains constant. This however means that the complete round T can notbe used exclusively for real-time transmissions. Therefore, a fractiontguard must be kept unreserved to allow for the variation of the actuallength of T, thereby dividing the round effectively into two parts, onewhere real-time packets may be sent and one which is reserved for besteffort transmission. In the worst case, a best-effort station startssending a data packet shortly before the round ends and tguard should beset appropriately depending on the channel rate, maximum packet size,and T. Another positive side-effect of using tguard is that RT stationsdo not use the total channel capacity, i.e., BE stations are notstarving.

In the following the mechanism for sequence establishment and admissioncontrol will be explained in somewhat more detail.

If a real-time station wants to join and is not the primary one, itfirst has to check whether sufficient transmission time in T isavailable to accommodate its real-time packets. According to oneembodiment, ifttot+tguard+2SIFS+tslot+tack+tdata<T, whereas

-   ttot=total required transmission time, as defined above-   tguard=guard period for preserving best effort traffic-   2SIFS=2× short interframe space-   tslot=time slot defined in the IEEE 802.11 variant in use (ex. IEEE    802.11a, IEEE 802.11b, IEEE 802.11g)-   tack=transmission duration of a MAC acknowledgement-   tdata=data transmission time

then the real-time station may join. Otherwise, it has to refrain fromtransmitting real-time packets, contending using BE priority. This isthe self-organized admission control which effectively checks whetherthe so far reserved time (ttot+tguard) plus the necessary time for thetransmission of the station which wants to join does not exceed theround duration T.

Now the way how the sequence numbers according to one embodiment areassigned will be described in somewhat more detail. The primary stationhas sequence number one. A new real-time station joining obtains its ownsequence number i (i=1, 2, . . . ) by simply adding one to the totalnumber of real-time stations nrt previously advertised by the primarystation in the RAM. A real-time station with sequence number i selects anon-random backoff time tback, i=(i−1) tslot for its first packet in thequeue. The backoff value attached to the other packets in the queue willincrement by one until reaching the number of packets the station isallowed to transmit during the RT period. Choosing the backoffs in thedescribed way results in a given transmission sequence, avoidingcollisions among real-time stations. However, there is a smallprobability that two stations join at the same time and hence select thesame backoff. This would though result in a collision (detected byabsence of an ACK). To resolve this conflict, the two colliding stationswait for a duration r T (r being a random integer number, e.g., between1 and 10) before trying to join again.

As mentioned before, according to one embodiment each RT station isallowed to reserve a number of RT slots m during the RT period insteadof only one (case m=1). In such a case the primary station will announcethe sequence number of all RT stations along with the number of reservedRT slots per station. The backoff AIFS_i chosen by a particular stationSTAi will be applied to its very first packet waiting in thetransmission queue. The rest (m−1) packets this STAi is allowed totransmit will obtain incremental backoffs AIFS_i+1, AIFS_i+2, . . . ,AIFS_i+(m−1). In this manner it becomes possible to deal with differentthroughput requirements for different stations by assigning them adifferent number of reserved RT slots.

In the following reuse and backward compatibility will be explained insomewhat more detail.

Once a real-time station has (sent or) received a RAM, it is allowed totransmit one real-time packet. If a real-time packet is already waitingin the buffer upon receiving the RAM, the real-time station startsdecrementing its backoff after the channel gets idle for AIFS(=SIFS+tslot) time. If another real-time station is transmitting, thebackoff is frozen until the channel becomes idle again. Hence, if allreal-time stations have a packet in their buffer upon receiving the RAM,any two consecutive real-time packets are being transmitted with an idletime of AIFS between them. This case is illustrated in FIG. 4. One cansee that the time between subsequent RT packets is SIFS+tslot. The sameapplies for packets generated by the same RT station.

FIG. 5 also illustrates the RT slot reuse in case of two packets fromstation A, and one from stations B to D waiting in the buffer wherepacket B is skipped. It can be seen that instead packet C takes itsplace, whereas packet D takes the place reserved for packet C.

In case a real-time station has no packet ready upon receiving the RAM,it skips its turn. The subsequent station in the sequence will thentransmit next with an idle time of AIFS+tslot after the previoustransmission. This means that the subsequent packet actually takes overthe RT slot which was reserved for the previous packet, except for anadditional idle time period of SIFS+tslot which must be detected toactually determine that the scheduled packet has been skipped and thatthe following packet may therefore decrease its backoff to take over itsrole. Generally, if k consecutive stations with a right to transmit 1packet/round refrain from transmitting a RT packet after the RAM, theidle time between two packets becomes SIFS+k tslot. In other words, thefirst packet (the one with the sequence number 1 and originating fromthe station which joined RT traffic first after the primary station) hasa backoff of one corresponding to one tslot, the next packet with thesequence number of 2 (and originating from the station which joined RTtraffic second after the primary station) has a backoff of 2 tslots, andso on. Each detected idle slot after a received RAM causes a packetwaiting in the buffer to be forwarded to decrease its backoff until ithas reached zero so that the packet can be transmitted, thereby reachinga maximum idle time of . AIFS+k tslot.

This idle time might be longer than the DIFS (which corresponds to theminimum time between an ACK and a BE packet) of legacy 802.11 stationsfor large k (or nrt). This means that if the maximum possible idle timeis larger than the DIFS this results in possible collisions between RTand BE stations because there is some possibility that a BE station mayjump into one of the idle RT slots while a RT packet is still waiting inthe buffer. To avoid this, according to an embodiment which isschematically illustrated in FIG. 6A and FIG. 6B, the BE packets whichcould possibly take over a RT slot are informed that they should waitfor a time until it is clear that no real-time packets having a validsequence number for real-time transmission are still waiting in thebuffer. For that purpose, according to one embodiment all real-timestations except the one with the highest sequence number set theduration field (to set the network allocation vector NAV of legacy802.11 stations) in their packets to 2 SIFS+tack+(nrt−station_index+1)tslot. In this manner, for situations where each RT station has only oneRT slot reserved, the duration field in a real-time packet can be set toa duration such that it can be avoided that a best effort packet cancapture a RT slot which is reserved for this or its succeeding real-timepacket. For cases where stations have more than one RT slot reserved,the formula applies on a per-packet basis and becomes a bit morecomplicated, namely 2SIFS+tack+tslot*(Total Number of RT SlotsRequired−(SUM(RT_slots_required_by_STA_i, for =1 to(station_index−1))+number_of_packets_already_ransmitted_by_sta_index incurrent round)+1). This means that for the RT slots reserved for thestation having the index i and all its succeeding stations (having ahigher index up to the station with the highest index) it can beprevented in this manner that they are taken over by a BE packet. Itshould be noted here that tslot is the length of a 802.11 slot which isgenerally much shorter than a RT slot reserved for a RT packet. In otherwords, a RT slot is, in general, equivalent to a number of 802.11 timeslots (tslots). Moreover it should be noted that the total number of RTslots is given by SUM(REQUIRED_SLOTS BYSTA_i, for i=1 to nrt), whereasnrt is the number of realtime stations. If each RT station has only oneRT slot nrt equals the total number of required RT slots. If a RTstation requires more than one RT sot, the primary station not onlytransmits in the RAM the number of RT stations but also the total numberof RT slots reserved to enable RT stations to correctly choose theirbackoff.

Hence, best-effort stations will refrain from transmitting until allreal-time stations with buffered packets have transmitted. Also, theduration field needs to be set in the RAM to SIFS+(total number of RTslots+1) tslot. The duration field is ignored by real-time stations. Inother words, the duration field in the real-time access marker is set toa duration corresponding to the accumulated backoff time of allreal-time stations to avoid that a best effort station takes over a RTslot which has been assigned to a real-time station.

In the following there will be described in more detail how according toone embodiment to preserve BE Traffic and Fairness among RT Stations.

Stations may receive real-time packets from the application layer at anytime in between two consecutive RAMs (during a “round”). The first mpackets (of a given station) in a round are assigned high priority, asdescribed before, e.g. by assigning to them an incremental sequence ofbackoffs (AIFS_i, AIFS_i+1, AIFS_i+2, . . . ) for the number of packetsthe station is allowed to transmit during a single RT period, denoted asm. However, if an (m+1)th (of the same station) arrives during the sameround, it is either queued until the next RAM or contends in equalconditions as BE (as illustrated in FIG. 7). Such “degraded” packets arereferred to as BE-RT packets in the following. Upon hearing a new RAM, astation with a waiting BE-RT packet “promotes” it back to high priorityto be transmitted in the RT period. Promoting BE-RT packets has theadvantage of:

-   -   Avoiding that packets of the same flow get reordered at the MAC        layer.    -   Not delaying RT packets in the queue waiting for a BE-RT packet        to get transmitted.

According to one embodiment RT stations are allowed to transmit m RTpackets per interval only. Extra RT packets get “degraded” to BE-RTpriority to compete equally with 802.11 stations.

By allowing m RT packets to be transmitted by a certain station theproblem of different throughput requirements for different stations canbe tackled. The mechanism works in such a way that having 3 RT stationstransmitting a single RT slot/frame is equivalent (from a systematicviewpoint) to having a single RT station transmitting 3 consecutive RTslots/frame.

It can be simply performed by letting every RT station “reserve” several(m) consecutive RT slots using different consecutive backoffs. This willnow be explained by means of a concrete example. For example, let usconsider station A which has right to transmit m=3 consecutive packets.For the first packet in the FIFO queue the associated backoff value willbe AIFS_A, for the second packet in the queue it will be AIFS_A+1*tslot,for the third one AIFS+2*tslot and so forth. That is, packets of stationA will be transmitted with an inter-packet space of AIFS_A in case Auses all its three RT slots.

At the primary station's side, it increases the “number of RT slots”announced in the beacons accordingly, so a new incoming RT station canchoose the appropriate new backoff value. The primary station detectsthe new joining station upon overhearing a RT packet (specified as a newtype of packet in the 802.11 header) from a station whose address is notin the list of addresses handled by the primary station. It also detectsthe value m associated to the new station, by overhearing the number ofconsecutive RT packets transmitted by the new station. From next beacon,the primary station will start advertising the sequence number andnumber of RT slots/round to each station (understanding that a RT slotis equivalent to a reserved right to transmit a packet and thus RT slotsdo not have a fixed time length).

Therefore, “additional/excessive” RT packets from a RT station (to bedowngraded) denotes the extent to which packets exceeds m packets/frameinstead of 1 packet/frame. For example, if the same station A has anassociated value m=3, it will be allowed to transmit a maximum of 3 RTpackets in a single frame. In case it has 4 packets at the beginning ofa time frame, it will transmit 3 packets during the RT period while thefourth packet will contend for channel access following the conventional802.11 procedure during the Best Effort period.

In the following the mechanism for releasing a reservation will bedescribed.

If a real-time station has finished its session, the previously reservedresources must be released. If a station has not transmitted a real-timepacket for a duration pT (p being a predefined integer number valid forall stations, e.g., 100), the primary station supposes that it hasfinished its real-time session. The primary station then informs theother real-time stations about this fact in the next RAM together withthe sequence number of the station that has left. Then, all real-timestations with a higher sequence number can decrement their non-randombackoff of their first packet in the queue by one.

If a station has not transmitted a real-time packet for more than pTalthough it has not finished its real-time session yet, it has tore-join as described above before transmitting the next real-timepacket. Alternatively, it might send keep-alive messages (real-timepackets without payload) with an interval of (p−1) T during its inactiveperiod.

In case the primary station wants to finish its real-time session, itadds the number of remaining RAMs it will still broadcast to the last j(e.g., 10) RAMs. Thus, other real-time stations know when they have todecrement their sequence number. Furthermore, the real-time station withsequence number two then knows when it has to take over the role of theprimary station.

In the following some features of real-time stations and schedulingmechanism in accordance with embodiments of the invention will besummarized. A single round or time frame of length T has been dividedinto two periods: 1) a guaranteed period for real-time packets, and 2) aconventional 802.11 contention-based period for best-effort traffic,which may also be used by best-effort real-time packets. The time framestructure guarantees that every real-time station i will be able to sendat least m_(i) data packets every T sec. Suppose that a networkcomprises nrt real-time stations and nbe best-effort stations in asingle collision domain with no channel errors so that all of them canoverhear each other in perfect conditions unless there is a packetcollision, i.e., simultaneous transmissions by two or more stations.

The real-time stations according to one embodiment then share thefollowing properties:

1. During the network initialization phase, every real-time stationobtains the number of other real-time stations nrt and number of packetseach of them is allowed to transmit from a received RAM or elects itselfthe primary station (i.e., nrt was zero) before transmitting its firstpacket. The new real-time station selects a non-random backoff valuetback, i=(i−1) tslot according to its sequence number (i=total number ofRT slots+1).

If a real-time station has a packet waiting in its buffer upon receivinga RAM, it starts counting down its backoff while the channel is idleafter SIFS. Hence, if all RT stations have a packet waiting in theirbuffer upon receiving the RAM, the idle time between two consecutive RTpackets is 1 tslot. Otherwise, if k consecutive stations that areallowed to transmit one packet per round refrain from transmitting a RTpacket after the RAM, the idle time between two packets becomes SIFS+ktslot.

2. RT stations ignore the duration field in 802.11 packet header.

3. When a station transmits its first packet in the round, it sets itsduration field to 2SIFS+tack+tslot*(1+SUM(i*Number of RT SlotsRequired_i, from i=my_station_index to i=last station index))t so thatlegacy 802.11 stations do not reduce their backoff counter during thereal-time period. As a result, the duration field is considered only bynon-real time stations to set their NAVs.

4. If the allowed m packets have already been transmitted in the currentround or time frame and there are one or more packets in thetransmission buffer, try to transmit these real-time packets within thebest-effort period but only until the next RAM at T. Upon overhearingthe new RAM, the next m best-effort real-time packets in the queue arepromoted back to real-time class.

One embodiment according to the invention may comprise the followingfeatures:

-   -   Using fixed backoffs (as timers) for RT slot reuse, giving more        ‘space’ for BE traffic.    -   Pushing 802.11 stations in time using NAV to allow real-time        scheduling for any number of RT stations.    -   The consecutive selection of backoffs, either by listening to        the primary station or overhearing existing RT communications,        to allow decentralized scheduling.    -   Primary station selection    -   Packet ‘degradation’ (if excessive) and ‘promotion’ (if new        periodic round starts), not to starve BE traffic.

FIG. 8 shows a flowchart which illustrates the operation of a mechanismin accordance with an embodiment of the invention. It starts withreceiving a packet from an application, if it is not a RT packet it willbe forwarded in BE mode.

If there is already a primary station there exists an indication aboutthe number of existing RT stations and the total number of RT slots fromthe RAM, then the sequence number is chosen accordingly (using anincrement of 1) if the admission check results in that there issufficient time to accommodate a further RT station. Otherwise thepacket is forwarded in BE mode.

If the new packet is not the first in the round it contends as BEpacket, otherwise the duration field is set to push BE packets and thebackoff is chosen in accordance with the order (sequence number andnumber of previous reserved RT slots).

If the degraded packet could not be transmitted it will be upgradedagain and the order will be again set.

If the waiting for RAM leads to a time out the order number isdecreased, if it then reaches 1 the station becomes the new primarystation.

It will be understood by the skilled person that the embodimentsdescribed hereinbefore may be implemented by hardware, by software, orby a combination of software and hardware. The modules and functionsdescribed in connection with embodiments of the invention may be as awhole or in part implemented by microprocessors or computers which aresuitably programmed such as to act in accordance with the methodsexplained in connection with embodiments of the invention. An apparatusimplementing an embodiment of the invention may e.g. comprise a node orelement in a network which is suitably programmed such that it is ableto carry out a realtime transmission as described in the embodiments ofthe invention.

According to an embodiment of the invention there is provided a computerprogram, either stored in a data carrier or in some other way embodiedby some physical means such as a recording medium or a transmission linkwhich when being executed on a computer enables the computer to operatein accordance with the embodiments of the invention describedhereinbefore.

Embodiments of the invention may be implemented e.g. by nodes in anetwork or any entities in a network which are programmed to operate inaccordance with the traffic scheduling mechanisms as described before.

1. A method for scheduling of traffic in wireless networks, whereas saidnetwork comprises real-time stations intending to send real-time trafficand best-effort stations sending best effort traffic, said methodcomprising: transmitting by a primary real-time station periodically areal-time access marker to thereby define rounds and to advertise thetotal number of real-time stations which are already sending real-timetraffic; obtaining a sequence number by each station in said networkwhich intends to send real-time traffic; based on the sequence numberobtained by a station, defining a fixed backoff time at which a packetfrom this station is transmitted after the start of a round to therebyestablish a sequence in which the real-time packets are sent by thedifferent real-time stations, wherein obtaining the sequence numbercomprises: overhearing for a predetermined period of time the traffic bysaid station which intends to send real-time traffic; and if from saidoverhearing said station concludes that there is already a primarystation transmitting real-time access markers which advertises the totalnumber of real-time stations, obtaining by said station which intends tosend real-time traffic its own sequence number based on the number ofreal-time stations which already are sending real-time traffic by addingone to the total number of real-time stations which has been advertisedby said real-time access markers.
 2. The method of claim 1, furthercomprising: if from said overhearing said station concludes that thereis not yet a primary station sending real-time access markers, assumingby said station the role of said primary station and starting to sendreal-time access markers.
 3. The method of claim 1, further comprising:assigning a maximum number of real-time slots per round to each station;based on the sequence number assigned to a station and the number ofreal-time slots it is allowed to transmit, defining a sequence of fixedbackoff times at which packets from this station are transmitted afterthe start of a round to thereby establish a sequence in which thereal-time packets are sent by the different realtime stations.
 4. Themethod of claim 1, wherein said real-time access marker comprises anindication of the number of stations which currently are sendingreal-time traffic in said network and the number of real-time slots eachstation has reserved, and incrementally assigning a new sequence numberto a real-time station which newly wants to send real-time traffic basedon the number of real-time stations which are already sending real-timetraffic.
 5. The method of claim 1, further comprising: dividing saidrounds into a part being used for real-time traffic in which real-timepackets can be scheduled and a part being reserved for best efforttraffic.
 6. The method of claim 1, wherein if a best effort station doesnot finish its transmission before the end of the round having aduration of T, thereby taking over a fraction ΔT of the next round, thenext real-time access marker is sent with a delay of ΔT and the nextround duration is shortened to T−ΔT.
 7. The method of claim 1, furthercomprising: if a packet from a real-time station does not use thereal-time slot assigned to it based on the sequence number of saidstation, taking over said real-time slot by the succeeding station. 8.The method of claim 1, wherein a real-time station uses only a definednumber of real-time slots per round and further packets are “downgraded”and transmitted in best effort mode.
 9. The method of claim 8, whereasif a downgraded packet can not be transmitted within a given round it isupgraded again in the next round.
 10. The method of claim 1, furthercomprising: before a new real-time station starts to send real-timepackets, checking whether the sum of the so far reserved time forreal-time transmission and the so far reserved time for best efforttraffic plus the transmission time necessary for the traffic of the newstation does exceed the round duration, and if it does exceed saidduration, sending said traffic from said new station in best effortmode, and if it does not exceed said duration, allowing said new stationto join the other real-time stations as a further real-time station. 11.The method of claim 1, further comprising: setting the duration field inthe real-time access marker to a duration corresponding to the remainingbackoff of the last RT station/packet in the round to avoid that a besteffort station takes over a RT slot which has been assigned to areal-time station.
 12. The method of claim 1, further comprising:setting the duration field in a real-time packet to a duration such thatit can be avoided that a best effort packet can capture a RT slot whichis reserved for this or its succeeding real-time packet.
 13. Anapparatus for scheduling of traffic in wireless networks, whereas saidnetwork comprises real-time stations intending to send real-time trafficand best-effort stations sending best effort traffic, said apparatuscomprising: a module for transmitting by a primary real-time stationperiodically a real-time access marker to thereby define rounds and toadvertise the total number of real-time stations which are alreadysending real-time traffic; a module for obtaining a sequence number byeach station in said network which intends to send real-time traffic; amodule for based on the sequence number obtaining by a station, defininga fixed backoff time at which a packet from this station is transmittedafter the start of a round to thereby establish a sequence in which thereal-time packets are sent by the different realtime stations, whereinsaid module for obtaining the sequence number comprises: a module foroverhearing for a predetermined period of time the traffic by a stationwhich intends to send real-time traffic; and a module for obtaining bysaid station a sequence number based on the number of real-time stationswhich already are sending real-time traffic by adding one to the totalnumber of real-time stations which has been advertised by said real-timeaccess markers if from said overhearing said station concludes thatthere is already a primary station transmitting real-time access markerswhich advertise the total number of real-time stations.
 14. Arealtime-station for scheduling of traffic in wireless networks, whereassaid network comprises real-time stations intending to send real-timetraffic and best-effort stations sending best effort traffic, saidrealtime-station comprising: a module for receiving a real-time accessmarker sent periodically by a primary real-time station to therebydefine rounds and to advertise the total number of real-time stationswhich are already sending real-time traffic; a module for obtaining asequence number by said realtime-station in said network which intendsto send real-time traffic; a module for based on the sequence numberobtaining by said station, defining a fixed backoff time at which apacket from this station is transmitted after the start of a round tothereby establish a sequence in which the real-time packets are sent bythe different realtime stations, wherein said module for obtaining thesequence number comprises: a module for overhearing for a predeterminedperiod of time the traffic by a station which intends to send real-timetraffic; and a module for obtaining by said realtime-station a sequencenumber based on the number of real-time stations which already aresending real-time traffic by adding one to the total number of real-timestations which has been advertised by said real-time access markers iffrom said overhearing said station concludes that there is already aprimary station transmitting real-time access markers which advertisethe total number of real-time stations.
 15. The realtime-station ofclaim 14, further comprising: a module for, if from said overhearingsaid realtime-station concludes that there is not yet a primary stationsending real-time access markers, assuming by said realtime-station therole of said primary station and starting to send real-time accessmarkers.
 16. A physical computer storage means having a computer programstored thereon that is configured to perform the steps of a methodaccording to claim 1 when said program is run on a computer.